Digital computer systems have a history of continually increasing the speed of the processors used in the system. As computer systems have migrated towards multiprocessor systems, sharing information between processors and memory systems has also generated a requirement for increased speed for the off-chip communication networks. Designers usually have more control over on-chip communication paths than for off-chip communication paths. Off-chip communication paths are longer, have higher noise, impedance mismatches, and have more discontinuities than on-chip communication paths. Since off-chip communication paths are of lower impedance, they require more current and thus more power to drive.
When using inter-chip high-speed signaling, noise and coupling between signal lines (cross talk) affects signal quality. One way to alleviate the detrimental effects of noise and coupling is through the use of differential signaling. Differential signaling comprises sending a signal and its compliment to a differential receiver. In this manner, noise and coupling affect both the signal and the compliment equally. The differential receiver only senses the difference between the signal and its compliment as the noise and coupling represent common mode signals. Therefore, differential signaling is resistant to the effects that noise and cross talk have on signal quality. On the negative side, differential signaling increases pin count by a factor of two for each data line. Additionally, an empty wiring channel is usually added between each differential channel which further adds to the wiring inefficiency.
The structure of a printed circuit board (PCB) is sometimes not homogeneous. It is common to find a weave structure on many laminates as shown in FIG. 1. Given the space between the components of a differential pair and the weave structure of PCBs, it is possible to find differential pairs with an orientation as shown in FIG. 1 where the exemplary signal traces Data 103 and Data_b 105 do not have the same substrate configuration. In one case, the signal trace Data 103 has a dielectric substrate comprising the continuous fiberglass strand material 102. In the other case, the signal trace Data_b has a dielectric substrate comprising fiberglass strands 101 in one direction and an epoxy fiberglass mix 104 in between the channels of fiberglass strands 101. This results in the transmission lines formed by the signal traces having differing relative permittivities which results in the transmission lines having differing propagation delays.
A differential pair having a signal and complement signal transmitted over matched transmission lines would have a received signal waveform substantially represented by the waveforms of FIG. 2A where the transition cross over points 203 and 204 are symmetrical. However, if the two transmission lines had different propagation delays, the resulting waveforms may look like the waveforms of FIG. 2B where the transition cross over points 203 and 204 are no longer symmetrical and occur at differing voltage levels resulting in timing skew between the two signals when detected in a differential receiver.
With net lengths of tens of centimeters, differential skew delays due to PCB laminate weaves may approach tens of picoseconds. Presently transmission data rates of 10 gigabits per second means a bit width of only 100 picoseconds. Clearly, tens of picoseconds of in-pair timing skew for differential pairs is not negligible for these high data rates. In-pair differential skew may cause asymmetric crossover and aggravate common mode sensitivities. One solution that is been proposed is to use a diagonal trace pattern as shown in FIG. 3 where signal traces Data 301 and Data_b 302 are run at a diagonal with respect to the orthogonal strands 101 and 102. See U.S. Pat. No. 6,304,700 and U.S. Patent Application 2004/0181764. This solution allows both signal traces Data 301 and Data_b 302 to have an equal mix of substrate composition. While this may be an improvement of FIG. 1, adhering to this configuration may make wiring rules difficult.
There is, therefore, a need for a signaling scheme that enables the skew between differential data channels to be compensated without complicating layout rules. The scheme must be programmable and easy to implement and modify.